# 定义编译器
CC = g++
# 定义编译选项
CFLAGS = -std=c++11 -Wall
# 定义链接选项
LDFLAGS = -L/usr/lib64/mysql
# 定义链接的库
LIBS = -lmysqlclient

# 定义源文件目录
SRCDIR = src
# 定义测试程序文件
TESTSRC = test.cpp

# 定义目标文件输出目录
BUILDDIR = build

# 定义要编译的源文件列表
SRCS = $(SRCDIR)/Util.cpp \
       $(SRCDIR)/ZMysql.cpp \
       $(TESTSRC)

# 将每个源文件名替换为相应的 .o 文件名
OBJS = $(patsubst $(SRCDIR)/%.cpp,$(BUILDDIR)/%.o,$(SRCS))

# 定义目标程序名
TARGET = test

# 默认目标（即第一个目标），编译目标程序
all: $(TARGET)

# 目标程序
$(TARGET): $(OBJS)
	$(CC) $(CFLAGS) $^ -o $@ $(LDFLAGS) $(LIBS)

# 生成 .o 文件
$(BUILDDIR)/%.o: $(SRCDIR)/%.cpp
	@mkdir -p $(BUILDDIR)
	$(CC) $(CFLAGS) -c $< -o $@

# 清理生成的文件
clean:
	rm -rf $(BUILDDIR) $(TARGET)
